package com.auction.service;

import com.auction.dto.BidDTO;
import com.auction.dto.BidPageQueryDTO;
import com.auction.pojo.Bid;
import com.auction.pojo.PageResult;
import com.auction.vo.BidWithTitle;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface BidService {
    /**
     * 提交竞价
     * 
     * @param bidDTO
     * @param userId
     * @param ipAddress
     * @return
     */
    boolean bid(BidDTO bidDTO, Long userId);

    /**
     * 获取拍卖品的所有竞价记录
     * 
     * @param auctionId
     * @return
     */
    List<Bid> getByAuctionId(Long auctionId);

    /**
     * 分页查询用户的竞价记录
     * 
     * @param pageNum
     * @param pageSize
     * @param userId
     * @return
     */
    PageInfo<Bid> pageByUserId(int pageNum, int pageSize, Long userId);

    /**
     * 获取拍卖品的最高竞价记录
     * 
     * @param auctionId
     * @return
     */
    Bid getHighestBid(Long auctionId);

    /**
     * 分页查询用户的竞价记录，并将拍卖品标题作为VO的属性
     * @param pageNum
     * @param pageSize
     * @param userId
     * @return
     */
    PageInfo<BidWithTitle> page(int pageNum, int pageSize, Long userId);

    /**
     * 分页查询所有竞价记录
     * @param bidPageQueryDTO
     * @return
     */
    PageResult pageQuery(BidPageQueryDTO bidPageQueryDTO);
}